<?php

class App_Model_DbTable_Article extends Ext_Db_Table  
{
    protected $_name = 'article';
    
    private $_articleRow = array();
    
    public function getRowById($articleId)
    {
        if(!$articleId)
        {
            return "";
        }

        if(isset($this->_articleRow[$articleId]))
        {
            return $this->_articleRow[$articleId];
        }

        $db = $this->getAdapter();
        $safe = $db->quoteInto(" id = ? ", $articleId);
        $row = $this->fetchRow($safe);
        
        if (!$row) {
            return "";
        }
        $_articleRow = $row->toArray();

        $this->_articleRow[$articleId] = $_articleRow;
        
        return $_articleRow;
    }
    
    public function addNew($inputArray)
    {
        $sql_data_array = array(
            'title'               => '',
            'attachments'         => '',
        );
        if(array_key_exists('title', $inputArray)) $sql_data_array['title'] = $inputArray['title'];
        if(array_key_exists('firstReplyArticleId', $inputArray)) $sql_data_array['firstReplyArticleId'] = $inputArray['firstReplyArticleId'];
        if(array_key_exists('replyArticleId', $inputArray)) $sql_data_array['replyArticleId'] = $inputArray['replyArticleId'];
        if(array_key_exists('attachments', $inputArray)) $sql_data_array['attachments'] = $inputArray['attachments'];
        if(array_key_exists('postTime', $inputArray)) $sql_data_array['postTime'] = $inputArray['postTime'];
        if(array_key_exists('editTime', $inputArray)) $sql_data_array['editTime'] = $inputArray['editTime'];
        if(array_key_exists('userId', $inputArray)) $sql_data_array['userId'] = $inputArray['userId'];
        if(array_key_exists('replies', $inputArray)) $sql_data_array['replies'] = new Zend_Db_Expr($inputArray['replies']);
        if(array_key_exists('status', $inputArray)) $sql_data_array['status'] = new Zend_Db_Expr($inputArray['status']);
        try {
            // 插入数据行并返回插入的行数
            $rows_affected = $this->insert($sql_data_array);
            // 最后插入的数据id   
            $last_insert_id = $this->getAdapter()->lastInsertId();
        }catch (Exception $e){
            trigger_error($e->getMessage(), E_USER_WARNING);
        }
        return $last_insert_id;
    }
    
    public function addOld($inputArray, $articleId)
    {
        $articleId = intval($articleId);
        
        $sql_data_array = array();
        if(array_key_exists('title', $inputArray)) $sql_data_array['title'] = $inputArray['title'];
        if(array_key_exists('firstReplyArticleId', $inputArray)) $sql_data_array['firstReplyArticleId'] = $inputArray['firstReplyArticleId'];
        if(array_key_exists('replyArticleId', $inputArray)) $sql_data_array['replyArticleId'] = $inputArray['replyArticleId'];
        if(array_key_exists('attachments', $inputArray)) $sql_data_array['attachments'] = $inputArray['attachments'];
        if(array_key_exists('postTime', $inputArray)) $sql_data_array['postTime'] = $inputArray['postTime'];
        if(array_key_exists('editTime', $inputArray)) $sql_data_array['editTime'] = $inputArray['editTime'];
        if(array_key_exists('userId', $inputArray)) $sql_data_array['userId'] = $inputArray['userId'];
        if(array_key_exists('replies', $inputArray)) $sql_data_array['replies'] = new Zend_Db_Expr($inputArray['replies']);
        if(array_key_exists('views', $inputArray)) $sql_data_array['views'] = new Zend_Db_Expr($inputArray['views']);
        if(array_key_exists('loves', $inputArray)) $sql_data_array['loves'] = new Zend_Db_Expr($inputArray['loves']);
        if(array_key_exists('votes', $inputArray)) $sql_data_array['votes'] = new Zend_Db_Expr($inputArray['votes']);
        if(array_key_exists('status', $inputArray)) $sql_data_array['status'] = new Zend_Db_Expr($inputArray['status']);
                
        try {
            $db = $this->getAdapter();
            $where = $db->quoteInto(" id = ? ", $articleId);
            $rows_affected = $this->update($sql_data_array, $where);
        }catch (Exception $e){
            trigger_error($e->getMessage(), E_USER_WARNING);
        }
        
        return "";
    }
    
    
}  

